﻿using System;
using GPainter.Interfaces;

namespace GPainter.Data
{
    //класс ребра
    [Serializable]
    public class EdgeData:IEdgeData
    {
        public string Id { get; set; }//идентификатор ребра
        public string SourceNode { get; set; }
        public string TargetNode { get; set; }
        public string EdgeText { get; set; }//форматированный текст над дугой
        public string StartEdgeText { get; set; } //подпись над начальной вершиной
        public string EndEdgeText { get; set; }  //подпись над конечной вершиной
        public bool ArrowHeadAtSource { get; set; }//есть ли стрелка над вершиной-источником
        public bool ArrowHeadAtTarget { get; set; }//есть ли стрелка над вершиной-целью
        public EdgeType Curve { get; set; }//форма дуги
        public Point[] Points { get; set; }//точки изломов
        public string EdgeClass { get; set; }//класс ребра
        public bool IsTop { get; set; }//для параллельных дуг
        public double RadX { set; get; }
        public int RadY { set; get; }
        
        //инициализатор
        public void EdgeConstructor(string id, string sNode, string tEdge, string text,
           bool hasOnSource, bool hasOnTarget, EdgeType curve,string eClass)
        {
            SourceNode = sNode;
            TargetNode = tEdge;
            Id = id;
            ArrowHeadAtSource = hasOnSource;
            ArrowHeadAtTarget = hasOnTarget;
            EdgeText = text;
            Curve = curve;
            EdgeClass = eClass;
            IsTop = false;
        }


    }
}
